python求矩阵的秩

您所在的位置:网站首页 python矩阵的逆矩阵 不用numpy python求矩阵的秩

python求矩阵的秩

2023-08-29 07:56| 来源: 网络整理| 查看: 265

讲解Python在线性代数中的应用,包括:

一、矩阵创建

先导入Numpy模块,在下文中均采用np代替numpy

1 import numpy as np

矩阵创建有两种方法,一是使用np.mat函数或者np.matrix函数,二是使用数组代替矩阵,实际上官方文档建议我们使用二维数组代替矩阵来进行矩阵运算;因为二维数组用得较多,而且基本可取代矩阵。

1 >>> a = np.mat([[1, 2, 3], [4, 5, 6]]) #使用mat函数创建一个2X3矩阵

2 >>>a3 matrix([[1, 2, 3],4 [4, 5, 6]])5 >>> b = np.matrix([[1, 2, 3], [4, 5, 6]])#np.mat和np.matrix等价

6 >>>b7 matrix([[1, 2, 3],8 [4, 5, 6]])9 >>> a.shape #使用shape属性可以获取矩阵的大小

10 (2, 3)

1 >>> c = np.array([[1, 2, 3], [4, 5, 6]]) #使用二维数组代替矩阵,常见的操作通用

2 >>> c#注意c是array类型,而a是matrix类型

3 array([[1, 2, 3],4 [4, 5, 6]])

单位阵的创建

1 >>> I = np.eye(3)2 >>>I3 array([[ 1., 0., 0.],4 [ 0., 1., 0.],5 [ 0., 0., 1.]])

矩阵元素的存取操作:

1 >>> a[0]#获取矩阵的某一行

2 matrix([[1, 2, 3]])3 >>> a[:, 0].reshape(-1, 1)#获取矩阵的某一列

4 matrix([[1],5 [4]])6 >>> a[0, 1]#获取矩阵某个元素

7 2

二、矩阵乘法和加法

矩阵类型,在满足乘法规则的条件下可以直接相乘

1 >>> A = np.mat([[1, 2, 3], [3, 4, 5], [6, 7, 8]])#使用mat函数

2 >>> B = np.mat([[5, 4, 2], [1, 7, 9], [0, 4, 5]])3 >>> A #注意A, B都是matrix类型,可以使用乘号,如果是array则不可以直接使用乘号

4 matrix([[1, 2, 3],5 [3, 4, 5],6 [6, 7, 8]])7 >>>B8 matrix([[5, 4, 2],9 [1, 7, 9],10 [0, 4, 5]])11 >>> A * B#学过线性代数的都知道:A * B != B * A

12 matrix([[ 7, 30, 35],13 [ 19, 60, 67],14 [ 37, 105, 115]])15 >>> B *A16 matrix([[ 29, 40, 51],17 [ 76, 93, 110],18 [ 42, 51, 60]])

如果是使用数组代替矩阵进行运算则不可以直接使用乘号,应使用dot()函数。dot函数用于矩阵乘法,对于二维数组,它计算的是矩阵乘积,对于一维数组,它计算的是内积。

1 >>> C = np.array([[1, 2, 3], [3, 4, 5], [6, 7, 8]])2 >>> D = np.array([[5, 4, 2], [1, 7, 9], [0, 4, 5]])3 >>> C #C, D都是array类型,不能直接使用乘号,应该使用dot()函数

4 array([[1, 2, 3],5 [3, 4, 5],6 [6, 7, 8]])7 >>>D8 array([[5, 4, 2],9 [1, 7, 9],10 [0, 4, 5]])11 #>>> C * D, Error, 注意这不是矩阵乘法!!!

12 >>> np.dot(C, D)#正确的写法&#x



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3